已经使用中的superset更改默认数据源sqlite到mysql
原文链接:https://segmentfault.com/a/1190000018042652
1.提取sqlite db(由于当前使用 docker 需要到宿主)
docker cp CONTAINER_NAME:/var/lib/superset/superset.db /opt
2.数据导出
然后使用 navicat 数据库工具打开sqlite文件选择导出向导csv数据保存到一个文件夹
3.创建mysql数据库与账号
4.安装superset python mysql支持 修改superset 数据库config(这个网上很多配置)
5.然后使用 superset db upgrade 初始化mysql数据表结构(如果直接导入sqlite导出的csv字段默认都是varchar255,这个会有问题)
6.更改数据表,删除全部数据表外键(删除外键是我这边的做法,具体自己可以优化,这里建议暂停superset来操作会快些)
7.更改部分报错类型
Incorrect datetime value: '0000-00-00 00:53:00' for column 'last_login' at row 1
[ERR] INSERT INTO new_superset
.ab_user
删除 ab_user.cvs last_login created_on changed_on 数据
同时ab_user表更改last_login,created_on,changed_on 字段类型为timestamp(6)
1406 - Data too long for column 'sql' at row 1
[ERR] INSERT INTO new_superset
.query
query表更改sql,'executed_sql' 字段类型longtext
1062 - Duplicate entry '[impala].[dw]' for key 'name'
[ERR] INSERT INTO new_superset
.`ab_view_menu
删除唯一索引
dbs.password 如果乱码需要删除,不然打开数据源页面会报错
8.使用navicat导入向导导入csv数据到mysql
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。